﻿Public Class CWM

    Public Sub juguemosCWM()

        grupbox1.empresas = Integer.Parse(grupbox1.NumEmpresas.Text)
        grupbox1.bodegas = Integer.Parse(grupbox1.NumBodegas.Text)
        Dim produccion As Integer = 0
        Dim espacio As Integer = 0
        For i As Integer = 1 To grupbox1.empresas
            For j As Integer = 1 To grupbox1.bodegas
                'recorrido obteniendo los valores de producción y espacio en bodega al final'
                For Each elemento As Control In grupbox1.splitContainer1.Panel1.Controls
                    'capturamos el valor de la producción y la bodega
                    If elemento.Name = "UpDown" & i & 1 Then
                        produccion = elemento.Text
                    End If
                    If elemento.Name = "UpDow" & 1 & j Then
                        espacio = elemento.Text
                    End If
                Next

                If produccion <> 0 And espacio <> 0 Then
                    If produccion <= espacio Then
                        If produccion = espacio Then
                            'caso especial cuando sea 0'
                            grupbox1.matriz(i, j).asignacion = produccion
                            'la fila y la column tambien la guardamos en variables para la bd'
                            grupbox1.matriz(i, j).fila = i
                            grupbox1.matriz(i, j).columna = j
                            For Each elemento As Control In grupbox1.splitContainer1.Panel1.Controls
                                If elemento.Name = "UpDown" & i & 1 Then
                                    elemento.Text = 0
                                ElseIf elemento.Name = "UpDow" & 1 & j Then
                                    elemento.Text = 0
                                End If
                            Next
                            Try
                                grupbox1.matriz(i + 1, j).asignacion = -1
                                'guardar la posición del 0'
                                grupbox1.matriz(i + 1, j).fila = i + 1
                                grupbox1.matriz(i, j).columna = j
                                For Each elemento As Control In grupbox1.splitContainer1.Panel1.Controls
                                    If elemento.Name = "Panel" & i + 1 & j Then
                                        elemento.Controls.Item(1).Text = 0
                                    End If
                                Next
                            Catch ex As Exception

                            End Try

                        Else
                            grupbox1.matriz(i, j).asignacion = produccion
                            grupbox1.matriz(i, j).fila = i
                            grupbox1.matriz(i, j).columna = j
                            For Each elemento As Control In grupbox1.splitContainer1.Panel1.Controls
                                If elemento.Name = "UpDown" & i & 1 Then
                                    elemento.Text = 0
                                ElseIf elemento.Name = "UpDow" & 1 & j Then
                                    elemento.Text = elemento.Text - produccion
                                End If
                            Next
                        End If
                    Else
                        grupbox1.matriz(i, j).asignacion = espacio
                        grupbox1.matriz(i, j).fila = i
                        grupbox1.matriz(i, j).columna = j

                        For Each elemento As Control In grupbox1.splitContainer1.Panel1.Controls
                            If elemento.Name = "UpDown" & i & 1 Then
                                elemento.Text = elemento.Text - espacio
                            ElseIf elemento.Name = "UpDow" & 1 & j Then
                                elemento.Text = 0
                            End If
                        Next
                    End If

                End If
            Next
        Next
        

    End Sub
End Class
